<template>
  <el-card class="cardClass">
    <div slot="header" class="cardClass_header">
      <h3>牛只发情记录</h3>
      <div>
        <el-button size="mini" type="success" icon="el-icon-plus" @click="open('新增其他奶量记录')">新增</el-button>
        <el-button size="mini" type="primary" icon="el-icon-search" @click="searchHidden()">搜索</el-button>
      </div>
    </div>
    <!-- 查询开始 -->
    <el-collapse-transition>
      <el-form :model="ruleForm" :inline="true" :rules="rules" ref="ruleForm" label-width="80px" v-if="hidden">
        <el-form-item label="字段：" prop="key">
          <el-select v-model="ruleForm.key" placeholder="请选择查询字段" size="small">
            <el-option v-for="item in keyOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="值：" prop="value">
          <el-input v-model="ruleForm.value" placeholder="请输入值" size="small" clearable></el-input>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="submitForm('ruleForm')" size="small" icon="el-icon-search">查询</el-button>
          <el-button @click="resetForm('ruleForm')" size="small" icon="el-icon-refresh">重置</el-button>
        </el-form-item>
      </el-form>
    </el-collapse-transition>
    <!-- 查询结束 -->

    <!-- 表格开始 -->
    <el-table :data="tableData" stripe v-loading="loading" size="small" border style="width: 100%">
      <el-table-column prop="id" type="index" label="序号" width="60px" align="center"></el-table-column>
      <el-table-column prop="guanlihao" label="管理号" align="center"></el-table-column>
      <el-table-column prop="zuijin24" label="最近24小时活动量" align="center"></el-table-column>
      <el-table-column prop="dangqianhuodong" label="当前活动量" align="center"></el-table-column>
      <el-table-column prop="faqingkashi" label="发情开始时间" align="center"></el-table-column>
      <el-table-column prop="faqingjieshu" label="发情结束时间" align="center"></el-table-column>
      <el-table-column prop="faqingshichang" label="发情时长（天）" align="center"></el-table-column>
      <el-table-column prop="zuijiapeizhong" label="最佳配种时间" align="center"></el-table-column>
      <el-table-column label="操作" align="center" width="220">
        <template slot-scope="scope">
          <el-button type="warning" size="mini" icon="el-icon-edit" @click="open('修改其他奶量记录', scope.row)">修改</el-button>
          <el-button type="danger" size="mini" icon="el-icon-delete" @click="del(scope.row)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <!-- 表格结束 -->

    <!-- 分页开始 -->
    <el-pagination background layout="total, prev, pager, next, jumper"  :total="total"
      :page-size="ruleForm.pageSize" v-show="!loading" :current-page="ruleForm.pageNum" @current-change="changePage"
      class="pageClass"></el-pagination>
    <!-- 分页结束 -->

    <!-- 新增修改组件开始 -->
    <addPedometer ref="addPedometerRef"></addPedometer>
    <!-- 新增修改组件结束 -->
  </el-card>
</template>

<script>
import addPedometer from "@/components/pedometer/addPedometer";
import { deleteAPI, queryAPI } from "@/apis/pedometer/estrusRecord.js";

export default {
  components: {
    addPedometer,
  },
  data() {
    return {
      total: null, // 分页
      loading: true, // 加载
      hidden: false, // 控制搜索表单显示状态
      // 表格开始
      tableData: [],
      // 表格结束
      ruleForm: {
        key: "guanlihao",
        value: "",
        pageNum: 1,
        pageSize: 10,
      },
      keyOptions: [
        { value: "guanlihao", label: "管理号" },
        { value: "zuijiapeizhong", label: "最佳配种时间" },
      ],
      rules: {
        key: [{ required: true, message: "请选择查询字段", trigger: "blur" }],
      },
    };
  },
  created() {
    this.search();
  },
  methods: {
    // 搜索隐藏
    searchHidden() {
      this.hidden = !this.hidden;
    },
    // 新增/修改弹窗
    open(title, row) {
      this.$refs.addPedometerRef.show(title, row);
    },
    // 搜索方法
    search() {
      const _this = this;
      _this.loading = true;
      queryAPI(_this.ruleForm).then((res) => {
        _this.tableData = res.data;
        _this.total = res.total;
        _this.loading = false;
      });
    },
    // 搜索
    submitForm(formName) {
      const _this = this;
      _this.$refs[formName].validate((valid) => {
        if (valid) {
          _this.ruleForm.pageNum = 1; // 查询重置页数
          _this.search(_this.ruleForm);
        }
      });
    },
    // 重置
    resetForm(formName) {
      let _this = this;
      this.$refs[formName].resetFields();
      this.search(_this.ruleForm);
      this.ruleForm.pageNum = 1; // 查询重置页数
    },
    // 删除
    del(row) {
      console.log(row);
      const _this = this;
      _this
        .$confirm("确认删除？", "提示", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning",
        })
        .then(() => {
          deleteAPI(row.id).then(function (res) {
            // console.log(res);
            if (res.code === 0) {
              _this.$message({
                type: "success",
                message: res.msg,
              });
              _this.search();
              _this.ruleForm.pageNum = 1; // 查询重置页数
            } else {
              _this.$message({
                type: "error",
                message: res.msg,
              });
            }
          });
        })
        .catch(() => { });
    },
    // 分页
    changePage(pageNum) {
      this.ruleForm.pageNum = pageNum;
      this.search();
    },
  },
};
</script>

<style></style>